Easy Life
Volume Number: 7
Issue Number: 2
Column Tag: Tools of the Trade
The "Easy" Life 
By Dave Kelly, Editorial Board
Programmer’s Utilities Make Life Easier
In 1984 the Macintosh was revolutionary. It was unique. It was fun. But
MacWrite just wasn’t enough power. MacPaint 1.0 seemed to do a lot, but is a wimp by
todays standards. That’s innovation. No matter how good software or hardware gets, it
won’t be good enough, ever. There will always be bugs in software, even the software
that comes from the big companies (sometimes e specially the software that comes from
big companies) have bugs. Otherwise you wouldn’t see version 1.02 around anywhere.
Every year new software updates and hardware upgrades are released. It seems
that there are more updates and upgrades than new product releases. The more
software you own, the more software updates you’ll be forced to buy. I hate buggy
software. When I know there is a bug fix available I want it.
The updates are not what I want to talk about in this article. We need them and
can’t live without them. Instead, let’s talk about a few ways that we can extend the
capabilities of the software we already have while we are waiting for innovation to
catch up to our wants. I’m referring to the ways we can make our existing systems do
more.
First I refer you to THINK Pascal’s pop up menus. THINK Pascal gives you a
quick way to move to any procedure, function, or method in your source code file. With
the source code file open, hold down the Command key and click in the title bar of the
Edit window. THINK Pascal will display a pop-up menu of the routines defined in the
file. When you select on of the procedure or function names from the pop up menu, the
insertion point moves to the beginning of the routine. This is a great time saver that
was not part of version 1.0.
Symantec also publishes what I feel is the most popular C compiler around,
THINK C. The THINK C editor is somewhat different from the THINK Pascal editor. If
you hold down the Option or command key as you click the title bar of a THINK C source
file’s edit window, you get a pop up menu listing all the #include files that are called
out in the source file. Wouldn’t it be advantageous to be able to find functions or
routines like you can in THINK Pascal?
This is exactly how PopUpFuncs 2.0 from SciComp Software was born. Eric
Slosser, the author of PopUpFuncs, had just finished a major contract using THINK
Pascal. He had grown to love the pop up function list feature, and sorely missed it when
using THINK C. Eric stated, “I couldn’t break the habit of holding down the command
key and clicking on the title bar to get that menu, and I was frustrated every time it
didn’t appear. I was sitting in a BMUG programmer’s meeting. The topic was the
forthcoming version of THINK C (back when 4.0 was about to come out). I asked if my
favorite feature was included”.
“Someone said that it was in one of the early beta-versions, but was yanked in
the later ones, and wasn’t going to be in the release. Since THINK revs its products at a
quick pace, I knew it would be a long time (if ever) before I saw the feature. I asked,
“how hard could it be?” That was the end of my spare time for the next month. The
MPW version was produced with Apple’s blessing, and the aid of an engineer on the MPW
project.”
PopUpFuncs 2.0 (PUF) adds a pop up menu to THINK C, MPW C (3.0 or later),
Pascal and Rez file windows. PUF installs a small icon on each end of the window title
bar. Clicking on the icon activates the pop up menu. The PopUpFuncs menu lists
functions, typedef, and locations that are marked with “#pragma mark”. #pragma is
ignored by the compiler and PUF makes use of it to mark a location. With Pascal, the
menu has indentation that mirrors the nesting of the subroutines. The Rez parser makes
it much easier to get around in those long files (the text listing of your resources). A
‘feature’ of PUF that really wasn’t planned is that it parses all three languages, even
inside THINK C. (good when viewing converting sample code from Pascal to c). Parsing
takes place when you click the button on the control in the title bar.
If the pop up menu of functions isn’t enough, PopUpFuncs also supports external
functions. PUF can change text in a file. There are many different text altering
utilities that can (and should) be written or integrated into the PUF environment.
Examples are block commenting, comment wrapping, pretty-printing, C-style
prototypes, list of routines. A unique resource of type xPop carries the code for the
extension to PUF. One xPop comes with PopUpFuncs (including C source code and xPop
specifications) for commenting/uncommenting lines. This is similar to the Block
Comment FKEY that comes with THINK Pascal. You can access the external functions
through the pop up menu by using Command-Click. You’ll have to write your own
extensions though; the comment xPop is the only one available now. Future xpops
written by users will be distributed (with their permission) in future versions.
Using PUF is simple, just run an installer program to install or un-install PUF.
You wouldn’t know it was simple by its documentation though. The scarce
documentation is limited to the About window and a Read-me file, not enough to go on
without a little bit of intuition. Experienced programmers with intuition should have
no trouble making excellent use of PUF, but some people would be just a little lost
initially. The Read-me file is primarily a list of bug fixes from previous versions and
some instructions on how to install PUF.
PopUpFuncs 2.0 About Dialog
PopUpFuncs is a convenience that is worth the expense. If you’re not sure,
SciComp Software promises: “We’re pretty sure that you’ll soon find it an
indispensable part of your programming environment. We’re so sure that you’ll like
it, we guarantee it. If you find in the next 30 days that you can live without it, let us
know and we’ll refund your money”.
INITs Galore
The Macintosh system is still evolving as I said at the beginning of this article.
System 7.0 is coming just around the corner and for those of us who have seen it know
that there are some marvelous new bells and whistles. Many of these functions are
already available without waiting for System 7.0. The problem is that adding these
capabilities usually means adding INITs. Adding INITs often causes the system to slow
down and sometimes even crash (e specially when INITs conflict with one another).
There are some INITs that can be an asset to any Mac user and without really
trying can help improve working conditions. Software developers should want to
improve their working conditions too.
Utilities Every Programmer Will Use NOW!
Now you can get a powerful collection of system enhancement utilities in one
package. Now Utilities™ from Now Software has 12 great extensions. For several
months since the release of Now Utilities I have received advertising literature about
Now Utilities. From the advertising I thought it looked interesting, but I didn’t get too
excited because some of these utilities had previously been seen as Public Domain or
Shareware versions. That’s true but the Shareware/PD versions were not nearly as
powerful as the current version.
Since MacTutor’s primary concern is in the ways that the programmer’s life can
be made easier, I’ll focus on the ways that Now Utilities can help you as a programmer
to both be more productive and enjoy the Macintosh too. Since any or all the utilities
can be installed each one works independently of the others. Yet, each complements and
supports the others.
Now Utilities 2.0 includes (alphabetically):
• AlarmsClock™: This INIT puts an alarm clock in the menu bar. The best part
about this alarm clock is that multiple alarms can be set to remind you of
important events. I use it to remind me when to quit what I’m working on and get
some sleep. I tend to stay up too late working if I don’t remind myself. The clock
display can be configured in any font and whatever size is available for the
selected font.
• Customizer™: As many of you know, there are attributes of the Finder that can be
modified to change the display of icons, text, color, and window location. The
Customizer is an application that modifies these Finder attributes. The equivalent
of this application is built into System 7.0.
• DeskPicture™: The pre-commercial version of this bombed on the newer
Macintoshes. This INIT lets you set up a PICT as the background of the screen.
This new version also lets you select a folder for the INIT randomly to select the
PICT to be used. I like this since it adds variety and I don’t have to look at the same
background every time I use my Macintosh. Since DeskPicture also works on
large monitors, a provision has been added to keep the PICT files on disk instead of
in memory. This could reduce that amount of RAM used for a 19” 32 bit monitor
from 3 megabytes to 84 kilobytes.
• FinderKeys™: Converts to the Mac who miss being able to type commands at the
keyboard will love this one. The way it works is that the first letter you type will
automatically select all the files/ folders that begin with that letter. As you enter
more letters, only the files starting with the letters you have typed will remain
selected. If you press return the folder or file selected will be opened.
FinderKeys also provides a way to copy or move documents from inactive windows
by selecting a combination of Command, option, and shift keys.
• MultiMaster™: This INIT provides an instant pop up or pull down menu to launch
files and applications. A pull down menu (similar to On-Que™) can be configured
so you don’t have to search through multi-levels of folders to find files or
applications that you use frequently. You can use the Memory Sizer option to edit
an application’s default memory size. This is quicker than opening up “Get Info”
window to change each application. Since memory size is usually something that is
set only once or only occasionally, the Memory Sizer won’t be that important.
Programmers will like MultiMaster’s Memory view option, a memory map for
optimizing your memory use under MultiFinder. The memory map shows
memory usage for each application and the System Heap and shows which portions
are free blocks, non-relocatable, and relocatable. For the casual user, the
memory map is helpful to visualize where free memory is available and which
applications must be closed to free up memory for another application.
MultiMaster also gives you the “set aside” feature similar to “set aside” in
System 7.0. If the “Set aside” option is selected windows of a foreground
application will be hidden as it switches to a newly selected application when
using MultiFinder. This feature will help relieve the window clutter that
sometimes occurs when several applications are open.
• NowMenus™: Now you can open CDEVs and Chooser documents directly from the
Apple Menu. Submenus are created for these and any DA that has a menu. You can
now change printers in one quick click of the mouse or open the SmartScrap™
table of contents directly from the Apple Menu. In addition, an option can be
selected to cause NowMenus to display a pop up menu whenever you click on the
desktop, or anywhere when selected modifier keys are pressed. From this pop up
menu you can select any running application and any item in the menu bar. You
see, the menu bar items are duplicated in the pull down menu.
• Print Previewer™: Print Previewer is a Chooser extension that lets you view
your document on the screen before printing. An FKEY is also provided to switch
automatically between the Previewer and whatever printer you have selected.
• Profiler™: This one is helpful if you are responsible for maintaining the
configuration of several Macintoshes. The profile analyzes all system version
information, memory status, hardware attributes, and Startup documents.
Profiler also lists all applications on any locally mounted storage drives. Too bad,
but Profiler won’t list applications on Tops or Appleshare volumes. An option to
do that would be useful to system operators.
• Screen Locker™: This INIT provides password protection for your Macintosh. In
addition, a screen saver function is provided which displays a message or a
picture when the screen blanks out. The screen saver is not as versatile as After
Dark or Pyro. The screen locking function can be used without starting screen
saving so that other screen savers can be used with it.
• StartUp Manager™: This INIT alone is worth the price of Now Utilities. The
StartUp Manager keeps track of all INITs, CDEVs, and Chooser documents. They
can be turned on or off so that the INITs you don’t use always can be bypassed.
There are other INIT manager type programs available such as INIT Picker and
Aask from CE Software. The difference is in the way that they keep track of the
Startup documents. StartUp Manager detects a system crash after it has already
happened and gone through the standard Macintosh system error handler. INIT
Picker on the other hand, hacks in into several low-memory globals and exception
vectors to catch the error that would cause a system crash. Because of this, their
crash protection doesn’t work as well as the StartUp Manager, and in particular,
it’s annoying for programmers using MacsBug, who would prefer to have a chance
to catch the problem before their machine reboots. You see, if an INIT crashes
with MacsBugs and StartUp Manager loaded, you end at MacsBug with a chance to
correct the problem If an INIT crashes with MacsBug and INIT Picker loaded, the
machine immediately re-boots or bombs without a chance to look at the problem.
For programmers writing INITs, this is extraordinarily annoying. When
restarting after an INIT crashes, StartUp Manager turns off the offending INIT and
warns you that it did so. The offending INIT may not be the cause of the problem,
but the StartUp Manager helps track down the INIT conflicts as they happen.
Another feature that StartUp Manager includes is the ability to set up selected
groups of INITs to be loaded. These groups of INITs can be selected when starting
up by holding down a Startup dialog key. I have one set that I usually use (day to
day) and another when I connect to an AppleShare network remotely. Any number
of groups can be set up.
Besides selecting INITs, the StartUp Manager preference options let you adjust
the size of the system heap before the INITs are loaded. This helps eliminate
crashes at startup due to low memory constraints caused from poorly written
INITs.
• Super Boomerang™: This is the commercial big brother of the popular
Boomerang INIT written by Hiroaki Yamamoto. Boomerang received a 5 mouse
rating from MacUser and Super Boomerang is a big improvement on that. Instead
of a pop up menu (in Boomerang), Super Boomerang has pull down menus which
appear at the top of the Open and Save (SFGetFile, SFPutFile) dialog boxes. In
addition, Super Boomerang attaches a Hierarchical menu to the open command of
your application, showing your previously opened files.
You can find files quickly from the Open and Save dialogs. SuperBoomerang’s
Find function has been rewritten to search a 600 MB CD Rom in 15 seconds and a
100 MB hard disk in 3 seconds. The edit files option lets you rename, duplicate, or
delete files. You can create a new folder with the New Folder option. Applications
and desk accessories can share up to 5 common “groups” of files and folders
which you can define. If you like Boomerang, you’ll really like Super Boomerang.
• WYSIWYG Menus™: This INIT is for the user that can never remember what each
font looks like and spends forever switching fonts to find the right one. I prefer
the regular font menus without WYSIWYG every time I pull down the menu. I can
disable it with the command key, but I prefer the option to enable it with the
command key, an option not available with this INIT. (SuitCase II gives you this
option!)
Now Utilities has something for everyone. Programmers will e specially like the
Startup Manager, MultiMaster and Super Boomerang. I have no doubts that you’ll like
it.
PopUpFuncs is available from:
SciComp Software
2912 Claremont Ave #21
Berkeley CA, 94705
To order: 800 522-5939. 8AM-6PM PST
Tech Support: 415 649-8525 9AM-9PM, with the possibility that you may have to
leave a message and be called back.
COMPUSERVE 73517,207
MCI-MAIL eslosser
AMERICA ONLINE eslosser
Price: $45 + $3 shipping & handling; quantity discounts and site licenses are
available.
Requires: Any Macintosh with THINK C or MPW C.
No copy protection
Now Utilities™ is available from:
Now Software, Inc.
520 SW Harrison, Suite 435
Portland, Oregon 97201
Telephone: 503-274-2800
Facsimile: 503-274-0670
Price: $129